package IT.Servlet;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

import IT.DataAccess.DatProveedorContacto;
import IT.DataAccess.IDatProveedorContacto;
import IT.Entities.ProveedorContacto;
import IT.Helper.Helper;
/**
 *
 * @author marlon
 */
public class ProveedorContactoServlet extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=ISO-8859-1");   
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ProveedorContactoServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet ProveedorContactoServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
            
       IDatProveedorContacto oDatContacto =new DatProveedorContacto();
       ProveedorContacto oContacto=new ProveedorContacto();
       Helper oHelper=new Helper();
       String cAccion, cMensaje;
       cMensaje="";     
            
       int nCodigo,nProveedor,nCargo,nEstado,nArea,nResultado;
       nCodigo=0; nProveedor=0;nCargo=0; nEstado=0;nArea=0;nResultado=0;
       boolean bPrincipal=false;
       
       if(request.getParameter("btnAccion")!=null){
           
           cAccion=request.getParameter("btnAccion").trim();
           //Insertar
           if(cAccion.trim().equals("Insertar")){
             //validar
             if(request.getParameter("hdnProveedor").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nProveedor=Integer.parseInt(request.getParameter("hdnProveedor").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("txtNNombre").trim().length()==0){
                cMensaje+="<li>Nombre es obligatorio</li>";
             }else{
                if(request.getParameter("txtNNombre").trim().length()<2){
                    cMensaje+="<li>Nombre debe ser mayor o igual a 2 caracteres</li>";
                }
             }
             
             if(request.getParameter("txtNCorreo")!=null){
                 if(request.getParameter("txtNCorreo").trim().length()!=0){
                    oHelper=new Helper();
                    if(oHelper.esCorreo(request.getParameter("txtNCorreo").trim())==false){
                        cMensaje+="<li>Correo formato invalido, ejemplo: usuario@mail.com</li>";
                    }
                 }
             }
             
             if(request.getParameter("cboNCargo").trim().length()==0){
                    cMensaje+="<li>Cargo es obligatorio</li>";
             }else{                    
                    try{
                        nCargo=Integer.parseInt(request.getParameter("cboNCargo").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Cargo formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("cboNArea").trim().length()==0){
                    cMensaje+="<li>Area es obligatorio</li>";
             }else{                    
                    try{
                        nArea=Integer.parseInt(request.getParameter("cboNArea").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Area formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("cboNEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboNEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("chkNPrincipal")!=null){
                bPrincipal=true;
             }
             
             if(bPrincipal==true){
                nResultado=oDatContacto.Valida(new ProveedorContacto(0, nProveedor));                
                if(nResultado!=0){
                   cMensaje+="<li>Ya se registro Contacto como Principal</li>";
                }
             }
             
             if(cMensaje.trim().length()==0){
                oContacto.setNom_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNNombre").trim()));
                oContacto.setTel1_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNTlf1").trim()));
                oContacto.setTel2_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNTlf2").trim()));
                oContacto.setTel3_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNTlf3").trim()));
                oContacto.setTel4_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNTlf4").trim()));
                oContacto.setTel5_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNTlf5").trim()));
                //oContacto.setApe_pat_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNPaterno").trim()));
                //oContacto.setApe_mat_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNMaterno").trim()));
                oContacto.setCar_provcon_in(nCargo);
                oContacto.setAr_provcon_in(nArea);
                oContacto.setEst_provcon_in(nEstado);
                oContacto.setCod_prov_in(nProveedor);
                oContacto.setCor_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNCorreo").trim()));
                oContacto.setPrin_provcon_bo(bPrincipal);
                oDatContacto.Insertar(oContacto);                
                
             }else{
               request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");                  
             }
             response.sendRedirect("WebProveedorContacto.jsp?nProveedor="+String.valueOf(nProveedor).trim());   
              
           }
           
            //Insertar
           if(cAccion.trim().equals("Guardar")){
             //validar
             if(request.getParameter("hdnCodigo").trim().length()==0){
                cMensaje+="<li>Codigo es obligatorio</li>";
             }else{
                try{                        
                    nCodigo=Integer.parseInt(request.getParameter("hdnCodigo").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Codigo formato incorrecto</li>";
                }
             }
               
             if(request.getParameter("hdnProveedor").trim().length()==0){
                cMensaje+="<li>Proveedor es obligatorio</li>";
             }else{
                try{                        
                    nProveedor=Integer.parseInt(request.getParameter("hdnProveedor").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Proveedor formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("txtNombre").trim().length()==0){
                cMensaje+="<li>Nombre es obligatorio</li>";
             }else{
                if(request.getParameter("txtNombre").trim().length()<2){
                    cMensaje+="<li>Nombre debe ser mayor o igual a 2 caracteres</li>";
                }
             }           
             
             if(request.getParameter("txtCorreo")!=null){
                 if(request.getParameter("txtCorreo").trim().length()!=0){
                    oHelper=new Helper();
                    if(oHelper.esCorreo(request.getParameter("txtCorreo").trim())==false){
                        cMensaje+="<li>Correo formato invalido, ejemplo: usuario@mail.com</li>";
                    }
                 }
             }
             
             if(request.getParameter("cboCargo").trim().length()==0){
                    cMensaje+="<li>Cargo es obligatorio</li>";
             }else{                    
                    try{
                        nCargo=Integer.parseInt(request.getParameter("cboCargo").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Cargo formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("cboArea").trim().length()==0){
                    cMensaje+="<li>Area es obligatorio</li>";
             }else{                    
                    try{
                        nArea=Integer.parseInt(request.getParameter("cboArea").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Area formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("cboEstado").trim().length()==0){
                    cMensaje+="<li>Estado es obligatorio</li>";
             }else{                    
                    try{
                        nEstado=Integer.parseInt(request.getParameter("cboEstado").trim());                        
                    }catch(Exception ex){
                        cMensaje+="<li>Estado formato incorrecto</li>";
                    }
             }
             
             if(request.getParameter("chkPrincipal")!=null){
                bPrincipal=true;
             }
             
             if(bPrincipal==true){
                nResultado=oDatContacto.Valida(new ProveedorContacto(nCodigo, nProveedor));                
                if(nResultado!=0){
                   cMensaje+="<li>Ya se registro Contacto como Principal</li>";
                }
             }
             
             if(cMensaje.trim().length()==0){
                oContacto.setCod_provcon_in(nCodigo);
                oContacto.setNom_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtNombre").trim()));
                oContacto.setTel1_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtTlf1").trim()));
                oContacto.setTel2_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtTlf2").trim()));
                oContacto.setTel3_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtTlf3").trim()));
                oContacto.setTel4_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtTlf4").trim()));
                oContacto.setTel5_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtTlf5").trim()));
                
                //oContacto.setApe_pat_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtPaterno").trim()));
                //oContacto.setApe_mat_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtMaterno").trim()));
                oContacto.setCar_provcon_in(nCargo);
                oContacto.setAr_provcon_in(nArea);
                oContacto.setEst_provcon_in(nEstado);
                oContacto.setCod_prov_in(nProveedor);
                oContacto.setCor_provcon_vc(oHelper.ValidaEncode(request.getParameter("txtCorreo").trim()));
                oContacto.setPrin_provcon_bo(bPrincipal);
                oDatContacto.Editar(oContacto);                
                
             }else{
               request.getSession().setAttribute("lblMensaje","<ul>"+cMensaje+"</ul>");                  
             }
             response.sendRedirect("WebProveedorContacto.jsp?nProveedor="+String.valueOf(nProveedor).trim());   
              
           }
           
           if(cAccion.trim().equals("Cancelar")){
             if(request.getParameter("hdnCliente").trim().length()==0){
                cMensaje+="<li>Cliente es obligatorio</li>";
             }else{
                try{                        
                    nProveedor=Integer.parseInt(request.getParameter("hdnProveedor").trim());                              
                }catch(Exception ex){
                    cMensaje+="<li>Cliente formato incorrecto</li>";
                }
             }
             response.sendRedirect("WebProveedorContacto.jsp?nProveedor="+String.valueOf(nProveedor).trim()); 
        
           }
       }
       
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
